package buildcode.language;

public abstract class MetaDataField<T extends Type, M> extends Field<T> implements IMetaData<M> {
    private M metaData;

    public MetaDataField(String fieldName, String typeName, M metaData) {
        super(fieldName, typeName);
        setMetaData(metaData);
    }

    public MetaDataField(String fieldName, String typeName, String remark, M metaData) {
        super(fieldName, typeName, remark);
        setMetaData(metaData);
    }

    public MetaDataField(String fieldName, String typeName, String remark, T type, M metaData) {
        super(fieldName, typeName, remark, type);
        setMetaData(metaData);
    }

    public M getMetaData() {
        return metaData;
    }

    public void setMetaData(M metaData) {
        this.metaData = metaData;
    }

}
